package com.gitee.mars.marsquickframe.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.mars.marsquickframe.entity.SysRole;
import com.gitee.mars.marsquickframe.request.SysRoleReq;
import com.gitee.mars.marsquickframe.response.base.BasePageRequest;
import com.gitee.mars.marsquickframe.response.base.PageInfo;
import com.gitee.mars.marsquickframe.response.vo.RoleDetailVo;
import com.gitee.mars.marsquickframe.response.vo.SysRoleListVo;

import java.util.List;

/**
 * 接口
 *
 * @Author wq
 * @Date 2020-12-15
 **/
public interface SysRoleService extends IService<SysRole> {

    /**
     * 分页
     *
     * @param query query
     * @return page
     */
    IPage<SysRole> page(BasePageRequest query);

    /**
     * 新增角色
     *
     * @param req req
     */
    void add(SysRoleReq req);

    /**
     * 更新角色
     *
     * @param req req
     */
    void updateRole(SysRoleReq req);

    /**
     * 角色详情
     *
     * @param id id
     * @return SysRole
     */
    RoleDetailVo detail(Integer id);

    /**
     * 删除角色
     *
     * @param id id
     */
    void delete(Integer id);

    /**
     * 角色列表
     *
     * @return list
     */
    List<SysRoleListVo> getList();

    /**
     * 根据角色ID查询角色名称
     *
     * @param roleId roleId
     * @return string
     */
    String selectRoleTile(Integer roleId);

    /**
     * 分页查询角色列表
     *
     * @param req req
     * @return
     */
    PageInfo<SysRoleListVo> rolePage(SysRoleReq req);

    /**
     * 角色列表
     *
     * @return List<SysRoleListVo>
     */
    List<SysRoleListVo> listRole();
}
